/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dswII.biblioteca.bl;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.its.dswII.biblioteca.dao.AutorDaoLocal;
import mx.its.dswII.biblioteca.enumeracion.EstadoTransaccion;
import mx.its.dswII.biblioteca.modelo.Autor;

/**
 *
 * @author Lenovo-user
 */
@Stateless
public class AutorBl implements AutorBlLocal {

    @EJB
    private AutorDaoLocal autorDao;
    //llamada a un enterprice java bean con el metodo de inyeccion de objetos
    //pues cuando se necesite el mismo contenedor de ejb's creara el objeto e inicializara la variable.
//comentario hecho par asubirlo al google code
    public EstadoTransaccion register(Autor author) {
        //numeracion
        if (autorDao.findDuplicity(author)) {
            //no se pudo hacer
            return EstadoTransaccion.INCOMPLETO;
        } else {
            autorDao.create(author);
            // ya lo hizo
            return EstadoTransaccion.COMPLETO;

        }
    }

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @Override
    public EstadoTransaccion modify(Autor author) {
        if (author.getId() == null || autorDao.find(author.getId()) == null) {
            return EstadoTransaccion.INCOMPLETO;
        } else {
            autorDao.edit(author);
            return EstadoTransaccion.COMPLETO;
        }

    }

    @Override
    public EstadoTransaccion remove(Autor author) {

        if (autorDao.find(author.getId()) == null || author.getId() == null) {

            return EstadoTransaccion.INCOMPLETO;
        } else {
            autorDao.remove(author);
            return EstadoTransaccion.COMPLETO;
        }

    }
    // crear metodo de listar 

    /**
     *
     * @return
     */
    @Override
    public List<Autor> getAll() {
        return autorDao.findAll();
    }

    @Override
    public Autor findById(int idAutor) {
          return autorDao.find(idAutor);
    }
    
    
    
}
